package com.example.shixun2; // 确保这是你的包名

import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;

/**
 * 你的“主代码”全局应用类。
 * 1. 它在App启动时第一个运行。
 * 2. 它的主要职责是执行“全局声明”，例如创建通知渠道。
 */
public class MyApplication extends Application {

    /**
     * 定义一个全局、公开、静态的渠道ID (代号)。
     * 这样你App中的任何地方 (比如 Fragment) 都可以安全地引用它，
     * 避免了拼写错误。
     */
    public static final String FEEDBACK_CHANNEL_ID = "FEEDBACK_CHANNEL_ID";

    /**
     * 当你的App进程被创建时，这个方法会被调用。
     */
    @Override
    public void onCreate() {
        super.onCreate();

        // 在这里调用我们的“声明”方法
        createNotificationChannel();
    }

    /**
     * 创建通知渠道 (仅在 Android 8.0+ 上需要)
     */
    private void createNotificationChannel() {
        // 检查版本，因为“渠道”这个概念只在 API 26 (Oreo) 及以上存在
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

            // 这是给“用户”看的渠道名称，会显示在手机的“通知设置”里
            CharSequence name = "反馈通知";
            // 这是给“用户”看的渠道描述
            String description = "用于显示提交反馈后的成功通知";
            // 渠道的重要性，这会影响通知的显示方式（是否弹窗、是否有声音等）
            int importance = NotificationManager.IMPORTANCE_DEFAULT;

            // 创建渠道对象
            NotificationChannel channel = new NotificationChannel(FEEDBACK_CHANNEL_ID, name, importance);
            channel.setDescription(description);

            // 从系统中获取通知管理器
            NotificationManager notificationManager = getSystemService(NotificationManager.class);

            // 向系统“注册”这个渠道
            notificationManager.createNotificationChannel(channel);
        }
    }
}